css: Use the tree to print css selectors
authorAlexander Larsson <alexl@redhat.com>
Thu, 29 Nov 2012 15:00:01 +0000 (16:00 +0100)
committerAlexander Larsson <alexl@redhat.com>
Fri, 30 Nov 2012 13:53:30 +0000 (14:53 +0100)
gtk/gtkcssprovider.c
gtk/gtkcssselector.c
gtk/gtkcssselectorprivate.h

index 358fed253825af599382b898f8b3ed21600bc64c..5500a7c9f732bde24cc346209231468be5feb7b2 100644 (file)
@@ -2884,7 +2884,7 @@ gtk_css_ruleset_print (const GtkCssRuleset *ruleset,
   WidgetPropertyValue *widget_value;
   guint i;
 
-  _gtk_css_selector_print (ruleset->selector, str);
+  _gtk_css_selector_tree_match_print (ruleset->selector_match, str);
 
   g_string_append (str, " {\n");
 
index 2ede3b437c52ff09810c936a715eb856a0419bae..831b0895f68a12a54ee8ab8d988b9357de531ea4 100644 (file)
@@ -1675,6 +1675,18 @@ _gtk_css_selector_tree_print (GtkCssSelectorTree *tree, GString *str, char *pref
 }
 #endif
 
+void
+_gtk_css_selector_tree_match_print (const GtkCssSelectorTree *tree,
+                                   GString *str)
+{
+  g_return_if_fail (tree != NULL);
+
+  tree->selector.class->print (&tree->selector, str);
+
+  if (tree->parent)
+    _gtk_css_selector_tree_match_print (tree->parent, str);
+}
+
 void
 _gtk_css_selector_tree_free (GtkCssSelectorTree *tree)
 {
index 7d811b75d105a9ecd85f04fd3351075e68ebec23..aac2b0403c49cb656f552fc0e896b90c5960e181 100644 (file)
@@ -40,10 +40,11 @@ gboolean          _gtk_css_selector_matches         (const GtkCssSelector   *sel
 int               _gtk_css_selector_compare         (const GtkCssSelector   *a,
                                                      const GtkCssSelector   *b);
 
-
-void _gtk_css_selector_tree_free (GtkCssSelectorTree *tree);
-GPtrArray *_gtk_css_selector_tree_match_all (GtkCssSelectorTree *tree,
-                                            const GtkCssMatcher    *matcher);
+void       _gtk_css_selector_tree_free            (GtkCssSelectorTree       *tree);
+GPtrArray *_gtk_css_selector_tree_match_all       (GtkCssSelectorTree       *tree,
+                                                  const GtkCssMatcher      *matcher);
+void       _gtk_css_selector_tree_match_print     (const GtkCssSelectorTree *tree,
+                                                  GString                  *str);
 
 GtkCssSelectorTreeBuilder *_gtk_css_selector_tree_builder_new   (void);
 void                       _gtk_css_selector_tree_builder_add   (GtkCssSelectorTreeBuilder *builder,